﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//Añado librerías necesarias
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Configuration;
using LibreriaEN;
using LibreriaCAD;

namespace LibreriaCAD
{
    //Hola Patri he creado esto para ir poniendo pequeñas funciones mías
    //, a espensas, de que vayas uniendo las cositas en este CAD cómo dice 
    //Arturo ;) 
    //conforme te pongas con esto avísame por TALK bss

    #region excepciones
    #endregion

    public class CADUsuario
    {
        #region interfaz

        #region f(x) de Ernesto
        #region EsCorreoAdministrador
        ////Acesso conectado////
        public bool EsCorreoAdministrador(string correoBuscado)
        {
            bool salida = false;                                //devuelve si lo es o no
            SqlConnection c = null;                             // Variable de conexión a la DB
            SqlCommand command = null;                          // Variable para la ejecución de comandos
            SqlDataReader reader = null;                        // Almacenador de datos obtenidos
            string query = string.Empty;                        // Instrucción a ejecutar
            List<string> listado = new List<string>();          // Listado de correos capturados

            query = "select admCorreo from administrador where admCorreo='" + correoBuscado + "';";

            try
            {
                // Establecimiento de conexión
                c = new SqlConnection(CADConexion.connString);
                c.Open();

                // Ejecución de la instrucción
                command = new SqlCommand(query, c);
                reader = command.ExecuteReader();

                // Recorrido de los datos obtenidos
                while (reader.Read())
                {
                    string correito;

                    correito = reader["admCorreo"].ToString();

                    listado.Add(correito);
                }

                if (listado.Capacity != 0)
                    salida = true;
                else
                    salida = false;

            }
            catch (Exception)
            {
                throw;
            }

            finally
            {
                // Comprobación de conexión abierta
                if ((c != null) && (c.State == ConnectionState.Open))
                {
                    c.Close();
                }
            }

            return salida;
        }
        #endregion
        #region EsCorreoProfesor
        ////Acesso conectado////
        public bool EsCorreoProfesor(string correoBuscado)
        {
            bool salida = false;                                //devuelve si lo es o no
            SqlConnection c = null;                             // Variable de conexión a la DB
            SqlCommand command = null;                          // Variable para la ejecución de comandos
            SqlDataReader reader = null;                        // Almacenador de datos obtenidos
            string query = string.Empty;                        // Instrucción a ejecutar
            List<string> listado = new List<string>();          // Listado de correos capturados

            query = "select prfCorreo from profesor where prfCorreo='" + correoBuscado + "';";

            try
            {
                // Establecimiento de conexión
                c = new SqlConnection(CADConexion.connString);
                c.Open();

                // Ejecución de la instrucción
                command = new SqlCommand(query, c);
                reader = command.ExecuteReader();

                // Recorrido de los datos obtenidos
                while (reader.Read())
                {
                    string correito;

                    correito = reader["prfCorreo"].ToString();

                    listado.Add(correito);
                }

                if (listado.Capacity != 0)
                    salida = true;
                else
                    salida = false;

            }
            catch (Exception)
            {
                throw;
            }

            finally
            {
                // Comprobación de conexión abierta
                if ((c != null) && (c.State == ConnectionState.Open))
                {
                    c.Close();
                }
            }

            return salida;
        }
        #endregion
        #region EsClaveValidaAdministrador
        ////Acesso conectado////
        public bool EsClaveValidaAdministrador(string correoAdministrador, string posibleClave)
        {
            bool salida = false;                                //devuelve si lo es o no
            SqlConnection c = null;                             // Variable de conexión a la DB
            SqlCommand command = null;                          // Variable para la ejecución de comandos
            SqlDataReader reader = null;                        // Almacenador de datos obtenidos
            string query = string.Empty;                        // Instrucción a ejecutar
            List<string> listado = new List<string>();          // Listado de correos capturados

            query = "select admClave from administrador where ((admCorreo='" + correoAdministrador + "') " +
                                                             "and (admClave='" + posibleClave + "'));";

            try
            {
                // Establecimiento de conexión
                c = new SqlConnection(CADConexion.connString);
                c.Open();

                // Ejecución de la instrucción
                command = new SqlCommand(query, c);
                reader = command.ExecuteReader();

                // Recorrido de los datos obtenidos
                while (reader.Read())
                {
                    string clavecita;

                    clavecita = reader["admClave"].ToString();

                    listado.Add(clavecita);
                }

                if (listado.Capacity != 0)
                    //si ha rellenado será válido
                    salida = true;
                else
                    //sino no será válido
                    salida = false;

            }
            catch (Exception)
            {
                throw;
            }

            finally
            {
                // Comprobación de conexión abierta
                if ((c != null) && (c.State == ConnectionState.Open))
                {
                    c.Close();
                }
            }

            return salida;
        }
        #endregion
        #endregion

        #endregion
    }
}
